package com.dg11185.nearshop.baidumap;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;

import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.dg11185.nearshop.app.DataCache;

/**
 * 
 * @author：Daibo    
 * @time：2014-7-15 下午4:03:29
 */
public abstract class BaseShopActivity extends BaseMapActivity {

    protected EntityShopData shopData = null;

    /** 用于收集BitmapDescriptor对象，在activity销毁时回收资源 */
    private List<BitmapDescriptor> discriptors = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        shopData = (EntityShopData) DataCache.getValue(MapConstant.dataShopInfoForMap);
        discriptors = new ArrayList<BitmapDescriptor>();
    }

    /**
     * 初始化商家位置图标
     */
    protected void initShopOverlay() {

        LatLng latLng = new LatLng(Double.parseDouble(shopData.shopLatitude),
                Double.parseDouble(shopData.shopLongitude));
        addOverlay(latLng, MapConstant.getIndustryIconId(shopData.shopIndustryId));
        MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(latLng);
        mBaiduMap.setMapStatus(update);
    }

    /***
     * 调用该方法可以在地图上创建一个overlay
     * 
     * @param latLng
     *            坐标位置
     * @param resourceId
     *            图标资源id
     */
    protected void addOverlay(LatLng latLng, int resourceId) {

        BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(resourceId);
        discriptors.add(descriptor);
        OverlayOptions options = new MarkerOptions().position(latLng).icon(descriptor);
        mBaiduMap.addOverlay(options);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        for (BitmapDescriptor d : discriptors) {
            d.recycle();
        }
    }
}
